A browser is capable of rendering a browser window (such as a web page) in response to receiving markup language and associated files, such as graphics, video, and executable files. A browser window often includes multiple frames, where each frame might display some content that may be populated independent of the remainder of the frames in the browser window. Typically, the frames are hierarchically structured such that the root frame is the entire scope of the browser window itself. The browser window may include one or more frames that represent children frames of the root frame. Those children frames may have their own children frames contained within their respective boundaries, and so forth.
Often, it is possible for the frames of a single browser window to be included within different security domains. For example, perhaps all but one frame is controlled by the publisher of the browser window, but that publisher allows a third party to publish content within one of the frames. In that case, the third-party frame may be in a different security domain than the remainder of the frames. Frames within one domain cannot easily communicate with frames in another domain, except through a controlled interface. This restriction provides security to the communication process, but the controlled interface only supports communication of a limited number of data types. For instance, strings, arrays, Boolean values, simple objects, and integers might be communicated over the controlled interface, but not more complex objects.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.